1. Field of the Invention
The present invention relates to systems and methods for providing streaming media to users, and in particular, to a system and method for presenting a search utility in embedded video.
2. Description of the Related Art
The dissemination and playback of media programs has undergone substantial changes in the past decade. Previously, media programs were disseminated either by analog broadcast (conventional, satellite, or cable) or by dissemination of films to movie theaters.
These traditional dissemination and playback means remain in use after the advent of digital technology. However, digital technologies have had a profound effect on the dissemination and playback of media programs.
First, digital technology permitted the use of digital video recorders (DVRs). DVRs, while similar in function to standard analog video cassette recorders (VCRs), provide a number of additional useful functions including live pause, the ability to record one program while playing back another, and the integration of the electronic program guides with DVR functionality (so that the recordation of media programs could be scheduled far in advance).
Second, digital technology also permitted the dissemination and playback of media programs via the Internet, and with improved signal processing and more and more households with high-speed Internet access (e.g. DSL, fiber, satellite), this method of dissemination and playback has become competitive with traditional means. Dissemination of media programs via the Internet may occur either by simple downloading, progressive downloading or streaming, and may be accomplished via dial-up, DSL, ADSL, cable, T1, or other high speed internet connections.
With simple downloading, a media file having the media program is downloaded to the user's computer, where it can be played back. Playback of the media file cannot commence until the entire file is downloaded, since the bytes of the media file in any convenient order, and not necessarily from the beginning to the end.
With progressive downloading, is similar to simple downloading, but instead of downloading portions of the media file in any convenient order, progressive downloading downloads the media file from the beginning and continues downloading the file sequentially and consecutively until the last byte. This typically permits the playback of the media program before the entire media file has been downloaded, so long as the media player has downloaded enough information to support playback. However, at any particular time during progressive downloading, some portions of the file (e.g. the portions at the end of the file) are not immediately available for playback. Playback is often delayed by slow Internet connections and is also often choppy and/or contains a high likelihood of stopping after only a few seconds. Downloaded material is thereafter stored on the end-user computer. Progressive downloading is typically performed by a web server.
One of the disadvantages of a progressive downloading is that the entity transmitting the data (the web server) simply pushes the data to the client as fast as possible. It may appear to be “streaming” the video because the progressive download capability of many media players allows playback as soon as an adequate amount of data has been downloaded. However, the user cannot fast-forward to the end of the file until the entire file has been delivered by the web server. Another disadvantage with progressive downloading is that the web server does not make allowances for the data rate of the video file. Hence if the network bandwidth is lower than the data rate required by the video file, the user will have to wait a period of time before playback can begin. If playback speed exceeds the data transfer speed, playback may be paused for a period of time while additional data is downloaded. However, the video playback quality will be higher when the playback occurs because of the higher data rate. For example, if a 100 kbps video file can be delivered over a 56 kbps modem, the video will be presented at the 100 kbps rate, but there may be periods when playback will be paused while additional video data is downloaded. The video data is typically downloaded as a temporary file in its entirety.
Web servers typically use HTTP (hypertext transport protocol) on top of TCP (transfer control protocol) to transfer files over the network. TCP, which controls the transport of data packets over the network, is optimized for guaranteed delivery of data, not speed. Therefore, if a browser senses that data is missing, a resend request will be issued and the data will be resent. In networks with high delivery errors, resend requests may consume a large amount of bandwidth. Since TCP is not designed for efficient delivery of adequate data or bandwidth control (but rather guaranteed delivery of all data), it is not preferred for the delivery of video data in all applications.
Streaming delivers media content continuously to a media player and media playback occurs simultaneously. The end-user is capable of playing the media immediately upon delivery by the content provider. Traditional streaming techniques originate from a single provider delivering a stream of data to a set of end-users. High bandwidths and central processing unit (CPU) power are required to deliver a single stream to a large audience, and the required bandwidth of the provider increases as the number of end-users increases.
Unlike progressive downloading, streaming media is delivered on-demand or live. Wherein progressive download requires downloading the entire file or downloading enough of the entire file to start playback at the beginning, streaming enables immediate playback at any point within the file. End-users may skip through the media file to start playback or change playback to any point in the media file. Hence, the end-user does not need to wait for the file to progressively download. Streaming media is often delivered from one or more dedicated streaming media servers.
A streaming media server is a specialized device that accepts requests for video files, and with information about the format, bandwidth and structure of those files, delivers just the amount of data necessary to play the video, at the rate needed to play it. Streaming media servers may also account for the transmission bandwidth and capabilities of the media player. Unlike the web server, the streaming media sever communicates with the media server using control messages and data messages to adjust to changing network conditions as the video is played. These control messages can include trick play functions such as fast forward, fast reverse, pausing, or seeking to a particular part of the file. Since a streaming media server transmits video data only as needed and at the rate that is needed, precise control over the number of streams served can be maintained. Unlike the case with progressive downloading, the viewer will not be able to view high data rate videos over a lower data rate transmission medium. However, streaming media servers (1) provide users random access to the video file, (2) allows monitoring of who is viewing what video programs and how long they are watched (3) use transmission bandwidth more efficiently, since only the amount of data required to support the viewing experience is transmitted, and (4) the video file is not stored in the viewer's computer, but discarded by the media player, thus allowing more control over the content.
Streaming media servers may use HTTP and TCP to deliver video streams, but generally use RSTP (real time streaming protocol) and UDP (user datagram protocol). These protocols permit control messages and save bandwidth by reducing overhead. Unlike TCP, when data is dropped during transmission, UDP does not transmit resent requests. Instead, the server continues to send data. Streaming media servers can also deliver live webcasts and can multicast, which allows more than one client to tune into a single stream, thus saving bandwidth.
Typically, progressively downloaded media is transmitted to the user computer at a rate that is faster than playback. The media program player buffers this data, and may indicate how much of the media program has been buffered by providing an indicator, usually as a part of a “progress bar.” A control is often provided that allows the user to go to any point in the program that has already been buffered by selecting the control and moving it to a different location along the progress bar. This allows the user to randomly access any buffered portion of the media program.
Streaming media players do not rely on buffering to provide random access to any point in the media program. Instead, this is accomplished through the use of control messages transmitted from the media player to the streaming media server.
Streaming media and progressive downloading allows the media to be played back via media players that can be embedded in the webpages of third parties. Such webpages may also include links to media programs (whether batched, progressively downloaded, or streamed). For example, a first entity such as search portal GOOGLE (www.google.com) may embed a media player in one of their hosted webpages that is provided in response to a search query. Other examples of embedded media players include commercial entities such as AMAZON (www.amazon.com), who may embed a media player in one of their hosted webpages and a blogger, who may embed a media program player in their hosted webpages to playback a video of interest to the readers.
However, embedding video or even providing links to media programs, particularly when obtained from sources other than the host of the underlying webpage can be problematic. If the webpage host wishes to embed video that is relevant to the substantive content presented in the webpage, the host's webmaster must perform a search to identify relevant video and code the link to the video within the webpage. For example, if the substantive content of the webpage includes information regarding a particular geographical locale such as the Eastern Sierra, the webmaster may perform a search for media programs relevant or related to the Eastern Sierra. Such media programs may include skiing videos, fishing videos or bicycling videos. The webmaster may then incorporate links to these media programs or embed these programs in the hosted webpage using appropriate HTML source. This technique has a number of disadvantages.
First, although a webmaster should be aware of the status of links to videos under the webmaster's control (e.g. videos offered at the same website), the same cannot be said for links to videos at third party websites. Such links can appear and disappear quickly and without notice. It is not at all unusual for a link to a video to be broken only days after the video is first available, nor is it unusual for links to new and perhaps preferable videos to appear in short order. If the host of a webpage were to manually embed videos into the webpage by altering the HTML source, the webmaster would be required to perform searches for new video links and to verify that the currently defined links remain valid as often as every few days. While this might not be a particularly onerous task for a website host with a full time webmaster, it is especially onerous for smaller website hosts.
Second, coding video links into webpages is only feasible with static webpage, that is, webpages that present the same content regardless of context. Webpages that are responsive to user input (such as search queries) or other information (such as information obtained from cookies and the like) present different content depending on factors which cannot be divined in advance. For such webpages, it is not feasible to provide embedded video that is responsive to the substantive content provided in the webpage itself. For example, if a user performs a search of the Internet for websites using “Eastern Sierra” for the query, the user will be presented with a number of potential websites that include content relevant to the Eastern Sierra. These results may also be modified in accordance with the information available in the user's cookies. Since the content of the response to the search query may change over time and cannot be divined in advance, it is difficult or impossible to provide a static link to such media programs in the search results.
What is needed is a system and method for adaptively supplementing the substantive content of a webpage using media program content available from third parties. The present invention satisfies this need.